<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JS错误处理</title>
</head>
<body>
    <script>
        //作用: 处理错误, 使代码继续执行.

        /**
         * 语法固定 try...catch   try 尝试的意思  catch 捕获  作用: 统一处理错误
         * 1. try catch捕获到错误之后, 后续代码可以继续执行
         * 2. catch 可以将错误信息捕获到. e 是一个对象, 有 message 和 stack 两个属性
         *                                             错误信息    错误位置
         * 3. 抛出错误之后, 在后续的 try 里面的代码不会执行
         * 4. try 不能捕获语法错误. 其他类型错误可以捕获. 
         * 5. 允许使用 throw 手动的抛出错误 
         * 6. 抛出任意类型的数据
         */

        //新语法  try 尝试
        try{
            //这里编写正常代码
            //JS 抛出错误
            // console.log(a);
            // console.log(234);
            //手动抛出错误
            // throw '出问题啦!!';
            //抛出错误对象   Error 父类  类
            throw new Error('用户名丢失!!');
        }catch(e){ //catch  抓住
            //这里编写错误产生以后的处理代码
            console.dir(e);
        }

        console.log(123);























        
    </script>
</body>
</html>